#pragma once
#ifdef _WINDOWS  //64位系统没有预定义 WIN32
#ifdef __cplusplus
#define DLL_EXPORT_C_DECL extern "C" __declspec(dllexport)
#else
#define DLL_EXPORT_DECL __declspec(dllexport)
#endif
#else
#ifdef __cplusplus
#define DLL_EXPORT_C_DECL extern "C"
#else
#define DLL_EXPORT_DECL extern
#endif
#endif

#ifdef _WINDOWS
#define WIN32_LEAN_AND_MEAN             //  从 Windows 头文件中排除极少使用的信息
#include "stddef.h"
#ifdef WIN32
#define WINAPI      __cdecl
#include "../include/HSTradeApi.h"
#pragma comment(lib, "../include/HSMdApi.lib")
#else
#define WINAPI      __stdcall
#include "../include/HSTradeApi.h"
#pragma comment(lib, "../include/HSMdApi.lib")
#endif
#else
#define WINAPI
#include "../include/HSTradeApi.h"
#endif

#include <string.h>

class Trade: CHSTradeSpi
{
public:
    Trade(void);
    
	// 回调虚类
	typedef void (WINAPI *FrontConnectedType)(void*);
	void *_FrontConnected;
	virtual void OnFrontConnected(){if (_FrontConnected) ((FrontConnectedType)_FrontConnected)(this);}
    
	// 当客户端与交易后台通信连接异常时，该方法被调用。
	typedef void (WINAPI *FrontDisconnectedType)(void*, int nResult);
	void *_FrontDisconnected;
	virtual void OnFrontDisconnected(int nResult){if (_FrontDisconnected) ((FrontDisconnectedType)_FrontDisconnected)(this, nResult);}
    
	// 客户认证
	typedef void (WINAPI *RspAuthenticateType)(void*, CHSRspAuthenticateField *pRspAuthenticate, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspAuthenticate;
	virtual void OnRspAuthenticate(CHSRspAuthenticateField *pRspAuthenticate, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspAuthenticate) ((RspAuthenticateType)_RspAuthenticate)(this, pRspAuthenticate, pRspInfo, nRequestID, bIsLast);}
    
	// 终端信息上报接口(中继模式)
	typedef void (WINAPI *RspSubmitUserSystemInfoType)(void*, CHSRspUserSystemInfoField *pRspUserSystemInfo, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspSubmitUserSystemInfo;
	virtual void OnRspSubmitUserSystemInfo(CHSRspUserSystemInfoField *pRspUserSystemInfo, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspSubmitUserSystemInfo) ((RspSubmitUserSystemInfoType)_RspSubmitUserSystemInfo)(this, pRspUserSystemInfo, pRspInfo, nRequestID, bIsLast);}
    
	// 客户登录
	typedef void (WINAPI *RspUserLoginType)(void*, CHSRspUserLoginField *pRspUserLogin, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspUserLogin;
	virtual void OnRspUserLogin(CHSRspUserLoginField *pRspUserLogin, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspUserLogin) ((RspUserLoginType)_RspUserLogin)(this, pRspUserLogin, pRspInfo, nRequestID, bIsLast);}
    
	// 密码更改
	typedef void (WINAPI *RspUserPasswordUpdateType)(void*, CHSRspUserPasswordUpdateField *pRspUserPasswordUpdate, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspUserPasswordUpdate;
	virtual void OnRspUserPasswordUpdate(CHSRspUserPasswordUpdateField *pRspUserPasswordUpdate, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspUserPasswordUpdate) ((RspUserPasswordUpdateType)_RspUserPasswordUpdate)(this, pRspUserPasswordUpdate, pRspInfo, nRequestID, bIsLast);}
    
	// 报单录入
	typedef void (WINAPI *RspErrorOrderInsertType)(void*, CHSRspOrderInsertField *pRspOrderInsert, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspErrorOrderInsert;
	virtual void OnRspErrorOrderInsert(CHSRspOrderInsertField *pRspOrderInsert, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspErrorOrderInsert) ((RspErrorOrderInsertType)_RspErrorOrderInsert)(this, pRspOrderInsert, pRspInfo, nRequestID, bIsLast);}
    
	// 撤单
	typedef void (WINAPI *RspOrderActionType)(void*, CHSRspOrderActionField *pRspOrderAction, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspOrderAction;
	virtual void OnRspOrderAction(CHSRspOrderActionField *pRspOrderAction, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspOrderAction) ((RspOrderActionType)_RspOrderAction)(this, pRspOrderAction, pRspInfo, nRequestID, bIsLast);}
    
	// 行权录入
	typedef void (WINAPI *RspErrorExerciseOrderInsertType)(void*, CHSRspExerciseOrderInsertField *pRspExerciseOrderInsert, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspErrorExerciseOrderInsert;
	virtual void OnRspErrorExerciseOrderInsert(CHSRspExerciseOrderInsertField *pRspExerciseOrderInsert, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspErrorExerciseOrderInsert) ((RspErrorExerciseOrderInsertType)_RspErrorExerciseOrderInsert)(this, pRspExerciseOrderInsert, pRspInfo, nRequestID, bIsLast);}
    
	// 行权撤单
	typedef void (WINAPI *RspExerciseOrderActionType)(void*, CHSRspExerciseOrderActionField *pRspExerciseOrderAction, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspExerciseOrderAction;
	virtual void OnRspExerciseOrderAction(CHSRspExerciseOrderActionField *pRspExerciseOrderAction, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspExerciseOrderAction) ((RspExerciseOrderActionType)_RspExerciseOrderAction)(this, pRspExerciseOrderAction, pRspInfo, nRequestID, bIsLast);}
    
	// 锁定录入
	typedef void (WINAPI *RspErrorLockInsertType)(void*, CHSRspLockInsertField *pRspExerciseOrderAction, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspErrorLockInsert;
	virtual void OnRspErrorLockInsert(CHSRspLockInsertField *pRspExerciseOrderAction, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspErrorLockInsert) ((RspErrorLockInsertType)_RspErrorLockInsert)(this, pRspExerciseOrderAction, pRspInfo, nRequestID, bIsLast);}
    
	// 询价录入
	typedef void (WINAPI *RspForQuoteInsertType)(void*, CHSRspForQuoteInsertField *pRspForQuoteInsert, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspForQuoteInsert;
	virtual void OnRspForQuoteInsert(CHSRspForQuoteInsertField *pRspForQuoteInsert, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspForQuoteInsert) ((RspForQuoteInsertType)_RspForQuoteInsert)(this, pRspForQuoteInsert, pRspInfo, nRequestID, bIsLast);}
    
	// 申请组合录入
	typedef void (WINAPI *RspErrorCombActionInsertType)(void*, CHSRspCombActionInsertField *pRspCombActionInsert, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspErrorCombActionInsert;
	virtual void OnRspErrorCombActionInsert(CHSRspCombActionInsertField *pRspCombActionInsert, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspErrorCombActionInsert) ((RspErrorCombActionInsertType)_RspErrorCombActionInsert)(this, pRspCombActionInsert, pRspInfo, nRequestID, bIsLast);}
    
	// 最大报单数量获取
	typedef void (WINAPI *RspQueryMaxOrderVolumeType)(void*, CHSRspQueryMaxOrderVolumeField *pRspQueryMaxOrderVolume, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQueryMaxOrderVolume;
	virtual void OnRspQueryMaxOrderVolume(CHSRspQueryMaxOrderVolumeField *pRspQueryMaxOrderVolume, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQueryMaxOrderVolume) ((RspQueryMaxOrderVolumeType)_RspQueryMaxOrderVolume)(this, pRspQueryMaxOrderVolume, pRspInfo, nRequestID, bIsLast);}
    
	// 可锁定数量获取
	typedef void (WINAPI *RspQryLockVolumeType)(void*, CHSRspQryLockVolumeField *pRspQryLockVolume, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryLockVolume;
	virtual void OnRspQryLockVolume(CHSRspQryLockVolumeField *pRspQryLockVolume, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryLockVolume) ((RspQryLockVolumeType)_RspQryLockVolume)(this, pRspQryLockVolume, pRspInfo, nRequestID, bIsLast);}
    
	// 可行权数量获取
	typedef void (WINAPI *RspQueryExerciseVolumeType)(void*, CHSRspQueryExerciseVolumeField *pRspQueryExerciseVolume, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQueryExerciseVolume;
	virtual void OnRspQueryExerciseVolume(CHSRspQueryExerciseVolumeField *pRspQueryExerciseVolume, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQueryExerciseVolume) ((RspQueryExerciseVolumeType)_RspQueryExerciseVolume)(this, pRspQueryExerciseVolume, pRspInfo, nRequestID, bIsLast);}
    
	// 申请组合最大数量获取
	typedef void (WINAPI *RspQryCombVolumeType)(void*, CHSRspQryCombVolumeField *pRspQryCombVolume, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryCombVolume;
	virtual void OnRspQryCombVolume(CHSRspQryCombVolumeField *pRspQryCombVolume, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryCombVolume) ((RspQryCombVolumeType)_RspQryCombVolume)(this, pRspQryCombVolume, pRspInfo, nRequestID, bIsLast);}
    
	// 持仓查询
	typedef void (WINAPI *RspQryPositionType)(void*, CHSRspQryPositionField *pRspQryPosition, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryPosition;
	virtual void OnRspQryPosition(CHSRspQryPositionField *pRspQryPosition, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryPosition) ((RspQryPositionType)_RspQryPosition)(this, pRspQryPosition, pRspInfo, nRequestID, bIsLast);}
    
	// 资金账户查询
	typedef void (WINAPI *RspQryTradingAccountType)(void*, CHSRspQryTradingAccountField *pRspQryTradingAccount, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryTradingAccount;
	virtual void OnRspQryTradingAccount(CHSRspQryTradingAccountField *pRspQryTradingAccount, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryTradingAccount) ((RspQryTradingAccountType)_RspQryTradingAccount)(this, pRspQryTradingAccount, pRspInfo, nRequestID, bIsLast);}
    
	// 报单查询
	typedef void (WINAPI *RspQryOrderType)(void*, CHSOrderField *pRspQryOrder, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryOrder;
	virtual void OnRspQryOrder(CHSOrderField *pRspQryOrder, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryOrder) ((RspQryOrderType)_RspQryOrder)(this, pRspQryOrder, pRspInfo, nRequestID, bIsLast);}
    
	// 成交查询
	typedef void (WINAPI *RspQryTradeType)(void*, CHSTradeField *pRspQryTrade, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryTrade;
	virtual void OnRspQryTrade(CHSTradeField *pRspQryTrade, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryTrade) ((RspQryTradeType)_RspQryTrade)(this, pRspQryTrade, pRspInfo, nRequestID, bIsLast);}
    
	// 行权查询
	typedef void (WINAPI *RspQryExerciseType)(void*, CHSExerciseField *pRspQryExercise, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryExercise;
	virtual void OnRspQryExercise(CHSExerciseField *pRspQryExercise, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryExercise) ((RspQryExerciseType)_RspQryExercise)(this, pRspQryExercise, pRspInfo, nRequestID, bIsLast);}
    
	// 锁定查询
	typedef void (WINAPI *RspQryLockType)(void*, CHSLockField *pRspQryLock, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryLock;
	virtual void OnRspQryLock(CHSLockField *pRspQryLock, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryLock) ((RspQryLockType)_RspQryLock)(this, pRspQryLock, pRspInfo, nRequestID, bIsLast);}
    
	// 申请组合查询
	typedef void (WINAPI *RspQryCombActionType)(void*, CHSCombActionField *pRspQryCombAction, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryCombAction;
	virtual void OnRspQryCombAction(CHSCombActionField *pRspQryCombAction, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryCombAction) ((RspQryCombActionType)_RspQryCombAction)(this, pRspQryCombAction, pRspInfo, nRequestID, bIsLast);}
    
	// 组合持仓明细查询
	typedef void (WINAPI *RspQryPositionCombineDetailType)(void*, CHSRspQryPositionCombineDetailField *pRspQryPositionCombineDetail, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryPositionCombineDetail;
	virtual void OnRspQryPositionCombineDetail(CHSRspQryPositionCombineDetailField *pRspQryPositionCombineDetail, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryPositionCombineDetail) ((RspQryPositionCombineDetailType)_RspQryPositionCombineDetail)(this, pRspQryPositionCombineDetail, pRspInfo, nRequestID, bIsLast);}
    
	// 合约信息查询
	typedef void (WINAPI *RspQryInstrumentType)(void*, CHSRspQryInstrumentField *pRspQryInstrument, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryInstrument;
	virtual void OnRspQryInstrument(CHSRspQryInstrumentField *pRspQryInstrument, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryInstrument) ((RspQryInstrumentType)_RspQryInstrument)(this, pRspQryInstrument, pRspInfo, nRequestID, bIsLast);}
    
	// 备兑缺口查询
	typedef void (WINAPI *RspQryCoveredShortType)(void*, CHSRspQryCoveredShortField *pRspQryCoveredShort, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryCoveredShort;
	virtual void OnRspQryCoveredShort(CHSRspQryCoveredShortField *pRspQryCoveredShort, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryCoveredShort) ((RspQryCoveredShortType)_RspQryCoveredShort)(this, pRspQryCoveredShort, pRspInfo, nRequestID, bIsLast);}
    
	// 行权指派查询
	typedef void (WINAPI *RspQryExerciseAssignType)(void*, CHSRspQryExerciseAssignField *pRspQryExerciseAssign, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryExerciseAssign;
	virtual void OnRspQryExerciseAssign(CHSRspQryExerciseAssignField *pRspQryExerciseAssign, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryExerciseAssign) ((RspQryExerciseAssignType)_RspQryExerciseAssign)(this, pRspQryExerciseAssign, pRspInfo, nRequestID, bIsLast);}
    
	// 银行转账
	typedef void (WINAPI *RspTransferType)(void*, CHSRspTransferField *pRspTransfer, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspTransfer;
	virtual void OnRspTransfer(CHSRspTransferField *pRspTransfer, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspTransfer) ((RspTransferType)_RspTransfer)(this, pRspTransfer, pRspInfo, nRequestID, bIsLast);}
    
	// 银行转账查询
	typedef void (WINAPI *RspQryTransferType)(void*, CHSRspQryTransferField *pRspQryTransfer, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryTransfer;
	virtual void OnRspQryTransfer(CHSRspQryTransferField *pRspQryTransfer, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryTransfer) ((RspQryTransferType)_RspQryTransfer)(this, pRspQryTransfer, pRspInfo, nRequestID, bIsLast);}
    
	// 银行余额查询
	typedef void (WINAPI *RspQueryBankBalanceType)(void*, CHSRspQueryBankBalanceField *pRspQueryBankBalance, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQueryBankBalance;
	virtual void OnRspQueryBankBalance(CHSRspQueryBankBalanceField *pRspQueryBankBalance, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQueryBankBalance) ((RspQueryBankBalanceType)_RspQueryBankBalance)(this, pRspQueryBankBalance, pRspInfo, nRequestID, bIsLast);}
    
	// 银行账户查询
	typedef void (WINAPI *RspQueryBankAccountType)(void*, CHSRspQueryBankAccountField *pRspQueryBankAccount, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQueryBankAccount;
	virtual void OnRspQueryBankAccount(CHSRspQueryBankAccountField *pRspQueryBankAccount, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQueryBankAccount) ((RspQueryBankAccountType)_RspQueryBankAccount)(this, pRspQueryBankAccount, pRspInfo, nRequestID, bIsLast);}
    
	// 多中心资金调拨
	typedef void (WINAPI *RspMultiCentreFundTransType)(void*, CHSRspMultiCentreFundTransField *pRspMultiCentreFundTransfer, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspMultiCentreFundTrans;
	virtual void OnRspMultiCentreFundTrans(CHSRspMultiCentreFundTransField *pRspMultiCentreFundTransfer, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspMultiCentreFundTrans) ((RspMultiCentreFundTransType)_RspMultiCentreFundTrans)(this, pRspMultiCentreFundTransfer, pRspInfo, nRequestID, bIsLast);}
    
	// 客户账单查询
	typedef void (WINAPI *RspQueryBillContentType)(void*, CHSRspQueryBillContentField *pRspQueryBillContent, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQueryBillContent;
	virtual void OnRspQueryBillContent(CHSRspQueryBillContentField *pRspQueryBillContent, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQueryBillContent) ((RspQueryBillContentType)_RspQueryBillContent)(this, pRspQueryBillContent, pRspInfo, nRequestID, bIsLast);}
    
	// 客户账单确认
	typedef void (WINAPI *RspBillConfirmType)(void*, CHSRspBillConfirmField *pRspBillConfirm, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspBillConfirm;
	virtual void OnRspBillConfirm(CHSRspBillConfirmField *pRspBillConfirm, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspBillConfirm) ((RspBillConfirmType)_RspBillConfirm)(this, pRspBillConfirm, pRspInfo, nRequestID, bIsLast);}
    
	// 保证金查询
	typedef void (WINAPI *RspQryMarginType)(void*, CHSRspQryMarginField *pRspQryMargin, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryMargin;
	virtual void OnRspQryMargin(CHSRspQryMarginField *pRspQryMargin, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryMargin) ((RspQryMarginType)_RspQryMargin)(this, pRspQryMargin, pRspInfo, nRequestID, bIsLast);}
    
	// 手续费查询
	typedef void (WINAPI *RspQryCommissionType)(void*, CHSRspQryCommissionField *pRspQryCommission, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryCommission;
	virtual void OnRspQryCommission(CHSRspQryCommissionField *pRspQryCommission, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryCommission) ((RspQryCommissionType)_RspQryCommission)(this, pRspQryCommission, pRspInfo, nRequestID, bIsLast);}
    
	// 持仓明细查询
	typedef void (WINAPI *RspQryPositionDetailType)(void*, CHSRspQryPositionDetailField *pRspQryPositionDetail, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryPositionDetail;
	virtual void OnRspQryPositionDetail(CHSRspQryPositionDetailField *pRspQryPositionDetail, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryPositionDetail) ((RspQryPositionDetailType)_RspQryPositionDetail)(this, pRspQryPositionDetail, pRspInfo, nRequestID, bIsLast);}
    
	// 汇率查询
	typedef void (WINAPI *RspQryExchangeRateType)(void*, CHSRspQryExchangeRateField *pRspQryExchangeRate, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryExchangeRate;
	virtual void OnRspQryExchangeRate(CHSRspQryExchangeRateField *pRspQryExchangeRate, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryExchangeRate) ((RspQryExchangeRateType)_RspQryExchangeRate)(this, pRspQryExchangeRate, pRspInfo, nRequestID, bIsLast);}
    
	// 经纪公司配置参数查询
	typedef void (WINAPI *RspQrySysConfigType)(void*, CHSRspQrySysConfigField *pRspQrySysConfig, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQrySysConfig;
	virtual void OnRspQrySysConfig(CHSRspQrySysConfigField *pRspQrySysConfig, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQrySysConfig) ((RspQrySysConfigType)_RspQrySysConfig)(this, pRspQrySysConfig, pRspInfo, nRequestID, bIsLast);}
    
	// 行情查询
	typedef void (WINAPI *RspQryDepthMarketDataType)(void*, CHSDepthMarketDataField *pRspQryDepthMarketData, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryDepthMarketData;
	virtual void OnRspQryDepthMarketData(CHSDepthMarketDataField *pRspQryDepthMarketData, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryDepthMarketData) ((RspQryDepthMarketDataType)_RspQryDepthMarketData)(this, pRspQryDepthMarketData, pRspInfo, nRequestID, bIsLast);}
    
	// 资金调拨
	typedef void (WINAPI *RspFundTransType)(void*, CHSRspFundTransField *pRspFundTransfer, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspFundTrans;
	virtual void OnRspFundTrans(CHSRspFundTransField *pRspFundTransfer, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspFundTrans) ((RspFundTransType)_RspFundTrans)(this, pRspFundTransfer, pRspInfo, nRequestID, bIsLast);}
    
	// 资金调拨流水查询
	typedef void (WINAPI *RspQryFundTransType)(void*, CHSRspQryFundTransField *pRspQryFundTrans, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryFundTrans;
	virtual void OnRspQryFundTrans(CHSRspQryFundTransField *pRspQryFundTrans, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryFundTrans) ((RspQryFundTransType)_RspQryFundTrans)(this, pRspQryFundTrans, pRspInfo, nRequestID, bIsLast);}
    
	// 查询客户通知
	typedef void (WINAPI *RspQryClientNoticeType)(void*, CHSClientNoticeField *pRspQryClientNotice, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryClientNotice;
	virtual void OnRspQryClientNotice(CHSClientNoticeField *pRspQryClientNotice, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryClientNotice) ((RspQryClientNoticeType)_RspQryClientNotice)(this, pRspQryClientNotice, pRspInfo, nRequestID, bIsLast);}
    
	// 期权标的信息查询
	typedef void (WINAPI *RspQryOptUnderlyType)(void*, CHSRspQryOptUnderlyField *pRspQryOptUnderly, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryOptUnderly;
	virtual void OnRspQryOptUnderly(CHSRspQryOptUnderlyField *pRspQryOptUnderly, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryOptUnderly) ((RspQryOptUnderlyType)_RspQryOptUnderly)(this, pRspQryOptUnderly, pRspInfo, nRequestID, bIsLast);}
    
	// 证券行情查询
	typedef void (WINAPI *RspQrySecuDepthMarketType)(void*, CHSRspQrySecuDepthMarketField *pRspQrySecuDepthMarket, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQrySecuDepthMarket;
	virtual void OnRspQrySecuDepthMarket(CHSRspQrySecuDepthMarketField *pRspQrySecuDepthMarket, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQrySecuDepthMarket) ((RspQrySecuDepthMarketType)_RspQrySecuDepthMarket)(this, pRspQrySecuDepthMarket, pRspInfo, nRequestID, bIsLast);}
    
	// 历史报单查询
	typedef void (WINAPI *RspQryHistOrderType)(void*, CHSOrderField *pRspQryHistOrder, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryHistOrder;
	virtual void OnRspQryHistOrder(CHSOrderField *pRspQryHistOrder, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryHistOrder) ((RspQryHistOrderType)_RspQryHistOrder)(this, pRspQryHistOrder, pRspInfo, nRequestID, bIsLast);}
    
	// 历史成交查询
	typedef void (WINAPI *RspQryHistTradeType)(void*, CHSTradeField *pRspQryHistTrade, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
	void *_RspQryHistTrade;
	virtual void OnRspQryHistTrade(CHSTradeField *pRspQryHistTrade, CHSRspInfoField *pRspInfo, int nRequestID, bool bIsLast){if (_RspQryHistTrade) ((RspQryHistTradeType)_RspQryHistTrade)(this, pRspQryHistTrade, pRspInfo, nRequestID, bIsLast);}
    
	//  主推-成交回报
	typedef void (WINAPI *RtnTradeType)(void*, CHSTradeField *pRtnTrade);
	void *_RtnTrade;
	virtual void OnRtnTrade(CHSTradeField *pRtnTrade){if (_RtnTrade) ((RtnTradeType)_RtnTrade)(this, pRtnTrade);}
    
	//  主推-报单回报
	typedef void (WINAPI *RtnOrderType)(void*, CHSOrderField *pRtnOrder);
	void *_RtnOrder;
	virtual void OnRtnOrder(CHSOrderField *pRtnOrder){if (_RtnOrder) ((RtnOrderType)_RtnOrder)(this, pRtnOrder);}
    
	//  主推-行权
	typedef void (WINAPI *RtnExerciseType)(void*, CHSExerciseField *pRtnExercise);
	void *_RtnExercise;
	virtual void OnRtnExercise(CHSExerciseField *pRtnExercise){if (_RtnExercise) ((RtnExerciseType)_RtnExercise)(this, pRtnExercise);}
    
	//  主推-申请组合
	typedef void (WINAPI *RtnCombActionType)(void*, CHSCombActionField *pRtnCombAction);
	void *_RtnCombAction;
	virtual void OnRtnCombAction(CHSCombActionField *pRtnCombAction){if (_RtnCombAction) ((RtnCombActionType)_RtnCombAction)(this, pRtnCombAction);}
    
	//  主推-锁定
	typedef void (WINAPI *RtnLockType)(void*, CHSLockField *pRtnLock);
	void *_RtnLock;
	virtual void OnRtnLock(CHSLockField *pRtnLock){if (_RtnLock) ((RtnLockType)_RtnLock)(this, pRtnLock);}
    
	//  主推-撤单错误回报
	typedef void (WINAPI *ErrRtnOrderActionType)(void*, CHSOrderActionField *pRtnOrder);
	void *_ErrRtnOrderAction;
	virtual void OnErrRtnOrderAction(CHSOrderActionField *pRtnOrder){if (_ErrRtnOrderAction) ((ErrRtnOrderActionType)_ErrRtnOrderAction)(this, pRtnOrder);}
    
	//  主推-客户通知
	typedef void (WINAPI *RtnClientNoticeType)(void*, CHSClientNoticeField *pRtnClientNotice);
	void *_RtnClientNotice;
	virtual void OnRtnClientNotice(CHSClientNoticeField *pRtnClientNotice){if (_RtnClientNotice) ((RtnClientNoticeType)_RtnClientNotice)(this, pRtnClientNotice);}
    
};
